package cn.sdhuijin.healthexam.util;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.util.Properties;

import android.os.Environment;
import android.util.Log;
import cn.sdhuijin.healthexam.bean.User;
import cn.sdhuijin.healthexam.bean.UserInfoBean;

/**
 * 读写properties文件读写
 * 
 * @author houyc
 * 
 */
public class ReadWriteProperties {

	private static final String TAG = "ReadWriteProperties";

	public ReadWriteProperties() {

	}

	/**
	 * 保存人员档案基本信息到Properties
	 * 
	 * @param createDate
	 *            创建日期
	 * @param userInfoBean
	 *            页面信息
	 * @return 保存结果
	 */
	public boolean storeProperties(String createDate, UserInfoBean userInfoBean) {
		boolean result = false;
		Properties properties = null;
		FileInputStream fileInputStream = null;
		FileOutputStream fileOutputStream = null;
		File file = null;
		File dirFile = null;
		try {
			properties = new Properties();
			dirFile = new File(Constants.PROPERTIES_PATH);
			if (!dirFile.exists()) {
				dirFile.mkdirs();
			}
			file = new File(Constants.PROPERTIES_PATH + createDate + ".txt");
			if (!file.exists()) {
				// 创建文件
				file.createNewFile();
			}
			fileInputStream = new FileInputStream(file);
			// 将属性文件流装载到Properties对象中
			properties.load(fileInputStream);
			// 姓名
			properties.setProperty("姓名", userInfoBean.getUserName());
			// 身份证号
			properties.setProperty("身份证号", userInfoBean.getIdenfyCardNum());
			// 性别
			properties.setProperty("性别", userInfoBean.getUserSex());
			// 出生日期
			properties.setProperty("出生日期", userInfoBean.getUserBirth());
			// 民族
			properties.setProperty("民族", userInfoBean.getUserNation());
			// 发证机关
			properties.setProperty("发证机关", userInfoBean.getFromDepartment());
			// 证件有效期
			properties.setProperty("证件有效期", userInfoBean.getExpiryDate());
			// 住址
			properties.setProperty("住址", userInfoBean.getUserAddress());
			fileOutputStream = new FileOutputStream(
					Environment.getExternalStorageDirectory() + "/health/"
							+ createDate + ".txt");
			// 保存
			properties.store(fileOutputStream, createDate + "身份证信息保存"
					+ userInfoBean.getIdenfyCardNum());
			result = true;
		} catch (Exception e) {
			Log.e(TAG, "保存档案信息到Properties错误: " + createDate);
			e.printStackTrace();
		} finally {
			try {
				if (fileInputStream != null) {
					fileInputStream.close();
				}
				if (fileOutputStream != null) {
					fileOutputStream.close();
				}
			} catch (Exception e2) {
			}
		}
		return result;
	}

	/**
	 * 保存体质判定转化分到中医体质判定文件
	 * 
	 * @param createDate
	 *            文件创建日期
	 * @param score
	 *            体质判定转化分
	 * @param type
	 *            体质类型
	 * @return
	 */
	public boolean storeBodyJudgeProperties(String createDate, String score,
			String type) {
		boolean result = false;
		Properties properties = null;
		FileInputStream fileInputStream = null;
		FileOutputStream fileOutputStream = null;
		File file = null;
		try {
			properties = new Properties();
			file = new File(Constants.PROPERTIES_PATH + createDate + ".txt");
			fileInputStream = new FileInputStream(file);
			// 将属性文件流装载到Properties对象中
			properties.load(fileInputStream);
			if ("平和质".equals(type)) {
				properties.setProperty("平和质转化分", score);
				properties.setProperty("随访医师", User.getCurrentUser().getName());
				properties.setProperty("随访日期",
						Util.dateFormat(createDate.substring(0, 8)));
			} else if ("气虚质".equals(type)) {
				properties.setProperty("气虚质转化分", score);
			} else if ("阳虚质".equals(type)) {
				properties.setProperty("阳虚质转化分", score);
			} else if ("阴虚质".equals(type)) {
				properties.setProperty("阴虚质转化分", score);
			} else if ("痰湿质".equals(type)) {
				properties.setProperty("痰湿质转化分", score);
			} else if ("湿热质".equals(type)) {
				properties.setProperty("湿热质转化分", score);
			} else if ("血瘀质".equals(type)) {
				properties.setProperty("血瘀质转化分", score);
			} else if ("气郁质".equals(type)) {
				properties.setProperty("气郁质转化分", score);
			} else if ("特禀质".equals(type)) {
				properties.setProperty("特禀质转化分", score);
			}
			fileOutputStream = new FileOutputStream(file);
			// 保存
			properties.store(fileOutputStream, type + score);
			result = true;
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			try {
				if (fileInputStream != null) {
					fileInputStream.close();
				}
				if (fileOutputStream != null) {
					fileOutputStream.close();
				}
			} catch (Exception e2) {
			}
		}
		return result;
	}

	/**
	 * 通过文件创建日期获取properties文件
	 * 
	 * @param createDate
	 * @return
	 */
	public Properties getBodyJudgeFeatureProperties(String createDate) {
		String[] features = null;
		Properties properties = null;
		FileInputStream fileInputStream = null;
		FileOutputStream fileOutputStream = null;
		File file = null;
		try {
			properties = new Properties();
			file = new File(Constants.PROPERTIES_PATH + createDate + ".txt");
			fileInputStream = new FileInputStream(file);
			// 将属性文件流装载到Properties对象中
			properties.load(fileInputStream);
			if (properties != null) {
				features = getNewFeaturesByProperties(properties.get("平和质转化分")
						.toString(), properties.get("气虚质转化分").toString(),
						properties.get("阳虚质转化分").toString(),
						properties.get("阴虚质转化分").toString(),
						properties.get("痰湿质转化分").toString(),
						properties.get("湿热质转化分").toString(),
						properties.get("血瘀质转化分").toString(),
						properties.get("气郁质转化分").toString(),
						properties.get("特禀质转化分").toString());
				if (features != null) {
					properties.setProperty("体质类型", features[0]);
					properties.setProperty("体质特征", features[1]);
					properties.setProperty("调节建议", features[2]);
					fileOutputStream = new FileOutputStream(file);
					// 保存
					properties
							.store(fileOutputStream, createDate + features[0]);
					return properties;
				}
			}
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			try {
				if (fileInputStream != null) {
					fileInputStream.close();
				}
				if (fileOutputStream != null) {
					fileOutputStream.close();
				}
			} catch (Exception e2) {
			}
		}
		return properties;
	}

	/**
	 * 体质特征判定
	 * 
	 * @param phzScore
	 *            平和质转化分
	 * @param qxzScore
	 *            气虚质转化分
	 * @param yxzScore
	 *            阳虚质转化分
	 * @param yinxzScore
	 *            阴虚质转化分
	 * @param dszScore
	 *            痰湿质转化分
	 * @param srzScore
	 *            湿热质转化分
	 * @param xyzScore
	 *            血瘀质转化分
	 * @param qyzScore
	 *            气郁质转化分
	 * @param tbzScore
	 *            特禀质转化分
	 * @return 体质特征
	 */
	public String[] getNewFeaturesByProperties(String phzScore,
			String qxzScore, String yxzScore, String yinxzScore,
			String dszScore, String srzScore, String xyzScore, String qyzScore,
			String tbzScore) {
		String[] features = new String[3];
		// 平和质
		if (Integer.parseInt(phzScore) >= 17) {
			if (Integer.parseInt(qxzScore) < 8
					&& Integer.parseInt(yxzScore) < 8
					&& Integer.parseInt(yinxzScore) < 8
					&& Integer.parseInt(dszScore) < 8
					&& Integer.parseInt(srzScore) < 8
					&& Integer.parseInt(xyzScore) < 8
					&& Integer.parseInt(qyzScore) < 8
					&& Integer.parseInt(tbzScore) < 8) {
				features[0] = "平和质";
				features[1] = "正常的体质";
				features[2] = "饮食有节制，不要常吃过冷过热或不干净的食物，粗细粮食要合理搭配";
			} else if (Integer.parseInt(qxzScore) < 10
					&& Integer.parseInt(yxzScore) < 10
					&& Integer.parseInt(yinxzScore) < 10
					&& Integer.parseInt(dszScore) < 10
					&& Integer.parseInt(srzScore) < 10
					&& Integer.parseInt(xyzScore) < 10
					&& Integer.parseInt(qyzScore) < 10
					&& Integer.parseInt(tbzScore) < 10) {
				features[0] = "基本是平和质";
				features[1] = "正常的体质";
				features[2] = "饮食有节制，不要常吃过冷过热或不干净的食物，粗细粮食要合理搭配";
			}
		} else if (Integer.parseInt(qxzScore) >= 11) {
			// 气虚质
			features[0] = "气虚质";
			features[1] = "肌肉松软，声音低，易出汗，易累，易感冒";
			features[2] = "多食用具有益气健脾作用的食物，如黄豆、白扁豆、鸡肉等。少食空心菜、生萝卜等";
		} else if (Integer.parseInt(yxzScore) >= 11) {
			// 阳虚质
			features[0] = "阳虚质";
			features[1] = "肌肉不健壮，常常感到手脚发凉，衣服比别人穿得多，夏天不喜欢吹空调，喜欢安静，性格多沉静、内向";
			features[2] = "平时可多食牛肉、羊肉等温阳之品，少食梨、西瓜、荸荠等生冷寒凉食物，少饮绿茶";
		} else if (Integer.parseInt(yinxzScore) >= 11) {
			// 阴虚质
			features[0] = "阴虚质";
			features[1] = "体形多瘦长，不耐暑热，常感到眼睛干涩，口干咽燥，总想喝水，皮肤干燥，经常大便干结，容易失眠";
			features[2] = "多食瘦猪肉、鸭肉、绿豆、冬瓜等甘凉滋润之品，少食羊肉、韭菜、辣椒、葵花子等性温燥烈之品";
		} else if (Integer.parseInt(xyzScore) >= 11) {
			// 血瘀质
			features[0] = "血瘀质";
			features[1] = "皮肤较粗糙，眼睛里的红丝很多，牙龈易出血";
			features[2] = "多食山楂、醋、玫瑰花等，少食肥肉等滋腻之品";
		} else if (Integer.parseInt(dszScore) >= 11) {
			// 痰湿质
			features[0] = "痰湿质";
			features[1] = "体形肥胖，腹部肥满而松软。易出汗，且多黏腻。经常感觉脸上有一层油";
			features[2] = "饮食应以清淡为主，可多食冬瓜等。因体形肥胖，易于困倦，故应根据自己的具体情况循序渐进，长期坚持运动锻炼";
		} else if (Integer.parseInt(srzScore) >= 11) {
			// 湿热质
			features[0] = "湿热质";
			features[1] = "面部和鼻尖总是油光发亮，脸上易生粉刺，皮肤易瘙痒。常感到口苦、口臭，脾气较急躁";
			features[2] = "饮食以清淡为主，可多食赤小豆、绿豆、芹菜、黄瓜、藕等甘寒的食物";
		} else if (Integer.parseInt(qyzScore) >= 11) {
			// 气郁质
			features[0] = "气郁质";
			features[1] = "体形偏瘦，常感到闷闷不乐、情绪低沉，常有胸闷，经常无缘无故地叹气,易失眠";
			features[2] = "多食黄花菜、海带、山楂、玫瑰花等具有行气、解郁、消食、醒神作用的食物。气郁体质的人不要总待在家里，要多参加群众性的体育运动项目";
		} else if (Integer.parseInt(tbzScore) >= 11) {
			// 特禀质
			features[0] = "倾向是特禀质";
			features[1] = "这是一类体质特殊的人群。其中过敏体质的人易对药物、食物、气味、花粉、季节过敏";
			features[2] = "多食益气固表的食物，少食荞麦(含致敏物质荞麦荧光素)、蚕豆等。居室宜通风良好";
		} else if (Integer.parseInt(qxzScore) >= 9
				&& Integer.parseInt(qxzScore) <= 10) {
			// 气虚质
			features[0] = "倾向是气虚质";
			features[1] = "肌肉松软，声音低，易出汗，易累，易感冒";
			features[2] = "多食用具有益气健脾作用的食物，如黄豆、白扁豆、鸡肉等。少食空心菜、生萝卜等";
		} else if (Integer.parseInt(yxzScore) >= 9
				&& Integer.parseInt(yxzScore) <= 10) {
			// 阳虚质
			features[0] = "倾向是阳虚质";
			features[1] = "肌肉不健壮，常常感到手脚发凉，衣服比别人穿得多，夏天不喜欢吹空调，喜欢安静，性格多沉静、内向";
			features[2] = "平时可多食牛肉、羊肉等温阳之品，少食梨、西瓜、荸荠等生冷寒凉食物，少饮绿茶";
		} else if (Integer.parseInt(yxzScore) >= 9
				&& Integer.parseInt(yxzScore) <= 10) {
			// 阴虚质
			features[0] = "倾向是阴虚质";
			features[1] = "体形多瘦长，不耐暑热，常感到眼睛干涩，口干咽燥，总想喝水，皮肤干燥，经常大便干结，容易失眠";
			features[2] = "多食瘦猪肉、鸭肉、绿豆、冬瓜等甘凉滋润之品，少食羊肉、韭菜、辣椒、葵花子等性温燥烈之品";
		} else if (Integer.parseInt(xyzScore) >= 9
				&& Integer.parseInt(xyzScore) <= 10) {
			// 血瘀质
			features[0] = "倾向是血瘀质";
			features[1] = "皮肤较粗糙，眼睛里的红丝很多，牙龈易出血";
			features[2] = "多食山楂、醋、玫瑰花等，少食肥肉等滋腻之品";
		} else if (Integer.parseInt(dszScore) >= 9
				&& Integer.parseInt(dszScore) <= 10) {
			// 痰湿质
			features[0] = "倾向是痰湿质";
			features[1] = "体形肥胖，腹部肥满而松软。易出汗，且多黏腻。经常感觉脸上有一层油";
			features[2] = "饮食应以清淡为主，可多食冬瓜等。因体形肥胖，易于困倦，故应根据自己的具体情况循序渐进，长期坚持运动锻炼";
		} else if (Integer.parseInt(srzScore) >= 9
				&& Integer.parseInt(srzScore) <= 10) {
			// 湿热质
			features[0] = "倾向是湿热质";
			features[1] = "面部和鼻尖总是油光发亮，脸上易生粉刺，皮肤易瘙痒。常感到口苦、口臭，脾气较急躁";
			features[2] = "饮食以清淡为主，可多食赤小豆、绿豆、芹菜、黄瓜、藕等甘寒的食物";
		} else if (Integer.parseInt(qyzScore) >= 9
				&& Integer.parseInt(qyzScore) <= 10) {
			// 气郁质
			features[0] = "倾向是气郁质";
			features[1] = "体形偏瘦，常感到闷闷不乐、情绪低沉，常有胸闷，经常无缘无故地叹气,易失眠";
			features[2] = "多食黄花菜、海带、山楂、玫瑰花等具有行气、解郁、消食、醒神作用的食物。气郁体质的人不要总待在家里，要多参加群众性的体育运动项目";
		} else if (Integer.parseInt(tbzScore) >= 9
				&& Integer.parseInt(tbzScore) <= 10) {
			// 特禀质
			features[0] = "倾向是特禀质";
			features[1] = "这是一类体质特殊的人群。其中过敏体质的人易对药物、食物、气味、花粉、季节过敏";
			features[2] = "多食益气固表的食物，少食荞麦(含致敏物质荞麦荧光素)、蚕豆等。居室宜通风良好";
		} else {
			features[0] = "不是任何一种体质";
			features[1] = "无";
			features[2] = "无";
		}
		return features;
	}

	/**
	 * 体质特征判定
	 * 
	 * @param phzScore
	 *            平和质转化分
	 * @param qxzScore
	 *            气虚质转化分
	 * @param yxzScore
	 *            阳虚质转化分
	 * @param yinxzScore
	 *            阴虚质转化分
	 * @param dszScore
	 *            痰湿质转化分
	 * @param srzScore
	 *            湿热质转化分
	 * @param xyzScore
	 *            血瘀质转化分
	 * @param qyzScore
	 *            气郁质转化分
	 * @param tbzScore
	 *            特禀质转化分
	 * @return 体质特征
	 */
	public String[] getFeaturesByProperties(String phzScore, String qxzScore,
			String yxzScore, String yinxzScore, String dszScore,
			String srzScore, String xyzScore, String qyzScore, String tbzScore) {
		String[] features = new String[3];
		// 平和质
		if (Integer.parseInt(phzScore) >= 60) {
			if (Integer.parseInt(qxzScore) < 30
					&& Integer.parseInt(yxzScore) < 30
					&& Integer.parseInt(yinxzScore) < 30
					&& Integer.parseInt(dszScore) < 30
					&& Integer.parseInt(srzScore) < 30
					&& Integer.parseInt(xyzScore) < 30
					&& Integer.parseInt(qyzScore) < 30
					&& Integer.parseInt(tbzScore) < 30) {
				features[0] = "平和质";
				features[1] = "正常的体质";
				features[2] = "饮食有节制，不要常吃过冷过热或不干净的食物，粗细粮食要合理搭配";
			} else if (Integer.parseInt(qxzScore) < 40
					&& Integer.parseInt(yxzScore) < 40
					&& Integer.parseInt(yinxzScore) < 40
					&& Integer.parseInt(dszScore) < 40
					&& Integer.parseInt(srzScore) < 40
					&& Integer.parseInt(xyzScore) < 40
					&& Integer.parseInt(qyzScore) < 40
					&& Integer.parseInt(tbzScore) < 40) {
				features[0] = "基本是平和质";
				features[1] = "正常的体质";
				features[2] = "饮食有节制，不要常吃过冷过热或不干净的食物，粗细粮食要合理搭配";
			}
		} else if (Integer.parseInt(qxzScore) >= 40) {
			// 气虚质
			features[0] = "气虚质";
			features[1] = "肌肉松软，声音低，易出汗，易累，易感冒";
			features[2] = "多食用具有益气健脾作用的食物，如黄豆、白扁豆、鸡肉等。少食空心菜、生萝卜等";
		} else if (Integer.parseInt(yxzScore) >= 40) {
			// 阳虚质
			features[0] = "阳虚质";
			features[1] = "肌肉不健壮，常常感到手脚发凉，衣服比别人穿得多，夏天不喜欢吹空调，喜欢安静，性格多沉静、内向";
			features[2] = "平时可多食牛肉、羊肉等温阳之品，少食梨、西瓜、荸荠等生冷寒凉食物，少饮绿茶";
		} else if (Integer.parseInt(yinxzScore) >= 40) {
			// 阴虚质
			features[0] = "阴虚质";
			features[1] = "体形多瘦长，不耐暑热，常感到眼睛干涩，口干咽燥，总想喝水，皮肤干燥，经常大便干结，容易失眠";
			features[2] = "多食瘦猪肉、鸭肉、绿豆、冬瓜等甘凉滋润之品，少食羊肉、韭菜、辣椒、葵花子等性温燥烈之品";
		} else if (Integer.parseInt(xyzScore) >= 40) {
			// 血瘀质
			features[0] = "血瘀质";
			features[1] = "皮肤较粗糙，眼睛里的红丝很多，牙龈易出血";
			features[2] = "多食山楂、醋、玫瑰花等，少食肥肉等滋腻之品";
		} else if (Integer.parseInt(dszScore) >= 40) {
			// 痰湿质
			features[0] = "痰湿质";
			features[1] = "体形肥胖，腹部肥满而松软。易出汗，且多黏腻。经常感觉脸上有一层油";
			features[2] = "饮食应以清淡为主，可多食冬瓜等。因体形肥胖，易于困倦，故应根据自己的具体情况循序渐进，长期坚持运动锻炼";
		} else if (Integer.parseInt(srzScore) >= 40) {
			// 湿热质
			features[0] = "湿热质";
			features[1] = "面部和鼻尖总是油光发亮，脸上易生粉刺，皮肤易瘙痒。常感到口苦、口臭，脾气较急躁";
			features[2] = "饮食以清淡为主，可多食赤小豆、绿豆、芹菜、黄瓜、藕等甘寒的食物";
		} else if (Integer.parseInt(qyzScore) >= 40) {
			// 气郁质
			features[0] = "气郁质";
			features[1] = "体形偏瘦，常感到闷闷不乐、情绪低沉，常有胸闷，经常无缘无故地叹气,易失眠";
			features[2] = "多食黄花菜、海带、山楂、玫瑰花等具有行气、解郁、消食、醒神作用的食物。气郁体质的人不要总待在家里，要多参加群众性的体育运动项目";
		} else if (Integer.parseInt(srzScore) >= 40) {
			// 特禀质
			features[0] = "特禀质";
			features[1] = "这是一类体质特殊的人群。其中过敏体质的人易对药物、食物、气味、花粉、季节过敏";
			features[2] = "多食益气固表的食物，少食荞麦(含致敏物质荞麦荧光素)、蚕豆等。居室宜通风良好";
		} else {
			features[0] = "平和质";
			features[1] = "正常的体质";
			features[2] = "饮食有节制，不要常吃过冷过热或不干净的食物，粗细粮食要合理搭配";
		}
		return features;
	}
}
